본문으로 건너뛰기

05.18 일지

🎯 (안드로이드) Fragment 중첩 해결하기


replace 사용

FragmentManager로 화면에 Fragment를 띄울 때, add, remove를 사용하고 있었다.

add → 네비게이터로 화면전환 → add
→ 화면이 중첩되어 떴음


⇒ `replace` 사용, `replaced → 네비게이터로 화면전환 → replace`

⇒ 화면에 하나의 Fragment만 계속 유지
😞 ⇒ Fragment 맥락유지는 실패..
결국 백 스택 관리로 맥락을 유지한 채 처리해야 한다.


Fragment 관련 상황 정리

HomeActivity

  • NavigationView - Fragment(outer) 내부의 탭(이동가능) - Fragment(inner)
    내가 유지하려는 맥락 = Fragment(inner) 자체가 가지는 맥락, Fragment(outer) 내부의 탭이동할 때 다른 Fragment(inner)의 맥락 유지 필요

🎯 (프로젝트) 깃 conflict 해결

: 다른 브랜치끼리 merge 할 때 충돌발생


깃헙에서 conflict된 파일 정의

: conflict는 하나의 리소스(like file)를 서로 다른 브랜치들이 접근(like data write)해서 생긴 문제


⇒ 깃헙에서 해당 파일에 어떤 data를 쓸 지 손수 파일 수정

<<<<<<: 파일 내에서 conflict가 시작된 시점을 의미
======: 서로 다른 파일들을 구분해줌
>>>>>>: 파일 내에서 conflict가 끝나는 시점을 의미


🎯 (Flutter) Xcode 파일에서 문제발생

: conflict를 수정을 마치고 merge해서 프로젝트를 빌드하는 과정에서 Xcode에러가 발생했다


`Xcode is unable to read your project due to a parse error`
가능한 문제점들을 혼자 생각해봤다...

가능성1. conflict를 수정하면서 Runner.xcodeproj/project.pbxproj 파일에 데이터를 잘못 입력한경우

가능성2. 브랜치에 따라 다른 id를 가지고 임의로 생성된 데이터 값을 합쳐 한 브랜치에서 쓰다보니 id가 맞지 않아서 생긴 문제


→ 텍스트 에디터를 사용하면 가능성1에 대해 확인해볼 수 있다고 하니 내일 그렇게해보자.

예방법?

⇒ 주로 dependencies를 관리, 명시해주는 부분에서 conflict가 발생했음
→ dependencies를 관리할 때 부모 브랜치 쪽에서만 관리해볼까?